朴素贝叶斯(Naive Bayes)
1. 条件概率和全概率公式(由因到果)
首先给出条件概率公式:
P(A|B)=P(AB)P(B)P(AB)是变量A和B的联合概率分布,P(B)是变量 B 的边缘概率分布。
全概率公式:
若事件Y1,Y2,…构成一个完备事件组且都有正概率,则对任意一个事件X,有如下公式成立:
P(X)=∑iP(X|Yi)P(Yi)解释:全概率公式的意义在于,当某一事件的概率难以求得时,可转化为在一系列条件下发生概率的和。
乘法定理:
P(A1,A2,A3,...,An)=P(A1)P(A2|A1)P(A3|A1,A2)···P(An|A1,A2,...An−1)2. 贝叶斯公式(执果索因)
贝叶斯公式就是当已知结果,问导致这个结果的第i
原因的概率是多少。(转化到分类问题上,“结果”就是样本,“第i个原因”即属于哪个类别)。
由条件概率公式,可以写成:
P(Yi|X)=P(XYi)P(X)=P(X|Yi)P(Yi)P(X)结合全概率公式,有:
P(Yi|X)=P(X|Yi)P(Yi)∑jP(X|Yj)P(Yj)解释:我们把P(Yi)叫做Y的先验概率,P(Yi|X)称为后验概率。
下面介绍一个例子实际计算一下。
3. 朴素贝叶斯
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。朴素贝叶斯算法假设了给定样本情况下,数据集属性之间是相互条件独立这一朴素假设 ,因此算法的逻辑性十分简单,并且算法较为稳定,当数据呈现不同的特点时,朴素贝叶斯的分类性能不会有太大的差异。换句话说就是朴素贝叶斯算法的健壮性比较好,对于不同类型的数据集不会呈现出太大的差异性。当数据集属性之间的关系相对比较独立时,朴素贝叶斯分类算法会有较好的效果。
下面给出朴素贝叶斯的推导和数学定义。
设有样本数据集D={d1,d2,···,dn},每个样本特征属性集X={x1,x2,···,xd},这n个样本共存在m个分类 Y={y1,y2,···,ym},其中x1,x2,···,xdx 相互独立且随机。则先验概率P(Y),后验概率P(Y|X).
由于各个特征之间相互独立,在给定类别 y 情况下,P(X|Y)进一步可以表示为:
P(X|Y=yj)=d∏i=1P(xi|Y=yj)实际上是乘法定理和条件独立的应用。
结合贝叶斯公式,有:
P(yi|x1,x2,···,xd)=P(yi)∏dj=1P(xj|yi)∑mkP(yk)∏djP(xj|yk)在给定样本的情况下,计算样本属于各个类别的概率时,分母都相等。
从而,只需最大化分子。有:
P(yi|x1,x2,···,xd)∝P(yi)d∏j=1P(xj|yi)从而
ˆy=argmax,这就是朴素贝叶斯定理。可能结果需要归一化,即各个类别概率加起来和为1。
给定样本X,类别为 y_i 的概率(m为类别个数)即:
最大的概率即为预测类别。这就是朴素贝叶斯。
“朴素在哪里?”
事实上,朴素贝叶斯做了如下假设:
- 一个特征出现的概率,与其他特征独立
每个特征同等重要
在真实的数据中,这个假设有可能并不会成立,如果一本书中出现了“机器学习”这个词,那么有很大概率会出现“数据挖掘”“特征工程”等词语,而出现“少林功夫”的概率是很低的。由此看来,词之间的概率并不独立,而且词对于分类的概率影响很大,每个词的重要性也是不同的。
因此,这样做出的假设是很“天真”,很”朴素“的。
4. 垃圾邮件识别
现在有已经分好类别的垃圾邮件和非垃圾邮件,希望训练一个垃圾邮件过滤器。有一个想法是分别统计垃圾邮件和非垃圾邮件中所包含的单词,在测试时,只要分析给定邮件中的单词,来计算这封邮件是垃圾邮件还是正常的邮件(其他算法分析单词顺序更加有效,这里不做介绍)。下面给出更加形象化定义。
垃圾邮件:spam,正常邮件:ham。在训练时,我们计算P(W_1|spam)、P(W_2|spam)、P(W_3|ham)…。现在有一封邮件,分析其单词组成,计算P(spam|W_1,W_2,W_3…)和P(ham|W_1,W_2,W_3…)概率分别是多少。
“朴素”:因为一封邮件中可能既包含W_1、又包含W_2,朴素就是假设W_1、W_2…相互独立。
同理可以计算
最后将二者概率进行归一化,就可得出是垃圾邮件还是正常邮件的概率。
5 生成模型和判别模型
判别模型(discriminative model)
通过求解条件概率分布 P(y|x) 或者直接计算 y 的值来预测 y。如:线性回归(Linear Regression),逻辑回归(Logistic Regression),支持向量机(
SVM
), 传统神经网络(Traditional Neural Networks),线性判别分析(Linear Discriminative Analysis),条件随机场(Conditional Random Field)。生成模型(generative model)
通过对观测值和标注数据计算联合概率分布 P(x,y) ,再计算P(y|x)来达到判定估算 y 的目的。朴素贝叶斯(Naive Bayes), 隐马尔科夫模型(
HMM
),贝叶斯网络(Bayesian Networks)和隐含狄利克雷分布(Latent Dirichlet Allocation)、混合高斯模型(GMM
)。
6 贝叶斯网络
贝叶斯网络(Bayesian network),又称信念网络(Belief Network),或有向无环图模型(directed acyclic graphical model),是一种概率图模型,于 1985 年由 Judea Pearl 首先提出。它是一种模拟人类推理过程中因果关系的不确定性处理模型,其网络拓朴结构是一个有向无环图(DAG)。
贝叶斯网络的有向无环图中的节点表示随机变量{X1,X2,...,Xn}{X1,X2,...,Xn}
。它们可以是可观察到的变量,或隐变量、未知参数等。认为有因果关系(或非条件独立)的变量或命题则用箭头来连接。若两个节点间以一个单箭头连接在一起,表示其中一个节点是“因(parents)”,另一个是“果(children)”,两节点就会产生一个条件概率值。一个简单的贝叶斯网络如下图:
例如,假设节点 E 直接影响到节点 H,即E→H,则用从E指向H的箭头建立结点E到结点H的有向弧(E,H),权值(即连接强度)用条件概率P(H|E)来表示,如下图所示:
贝叶斯网络中,全部随机变量的联合分布如下:
比如上图的贝叶斯网络中,x_1,x_2,x_3,…,x_7的联合概率分布是:
下面介绍贝叶斯网络的结构形式:
head-to-head
在 c 未知的情况下,a ,b 被阻断(blocked),是独立的。
tail-to-tail
在 c 给定的情况下,a ,b 是独立的。
head-to-tail
在 c 给定的情况下,a ,b 被阻断(blocked),是独立的。其实这就是马尔可夫链,当前状态只与前一个状态相关。